#!/bin/bash

echo "========== 微服务启动脚本 =========="
echo "请确保 Nacos 服务已在 152.136.130.146:8848 启动"
echo ""

# 检查 Nacos 是否可用
echo "检查 Nacos 服务..."
curl -s "http://152.136.130.146:8848/nacos/v1/ns/service/list?pageNo=1&pageSize=10" > /dev/null
if [ $? -ne 0 ]; then
    echo "错误: Nacos 服务不可用，请先启动 Nacos"
    echo "可以使用以下命令启动 Nacos (单机模式):"
    echo "sh \$NACOS_HOME/bin/startup.sh -m standalone"
    exit 1
fi

echo "Nacos 服务检查通过"
echo ""

# 编译项目
echo "编译微服务..."
cargo build --release

if [ $? -ne 0 ]; then
    echo "编译失败，请检查代码"
    exit 1
fi

echo "编译完成"
echo ""

# 启动 infra 服务
echo "启动 Infra 服务 (端口: 50052)..."
./target/release/infra-server &
INFRA_PID=$!
echo "Infra 服务 PID: $INFRA_PID"

# 等待 infra 服务启动
sleep 3

# 启动 system 服务
echo "启动 System 服务 (端口: 50051)..."
./target/release/system-server &
SYSTEM_PID=$!
echo "System 服务 PID: $SYSTEM_PID"

# 等待 system 服务启动
sleep 3

# 启动客户端测试
echo "启动客户端测试..."
echo "按 Ctrl+C 停止所有服务"
./target/release/system-client &
CLIENT_PID=$!

# 等待用户中断
trap "echo '停止所有服务...'; kill $INFRA_PID $SYSTEM_PID $CLIENT_PID 2>/dev/null; exit" INT

wait $CLIENT_PID 